﻿
/** 
 * AUTHOR: 雾雨魔理沙
 * TIME: 2024.03.04-11.31.44
 * ATTENTION: onStart 等UI脚本自带函数不可改写为异步执行，有需求的异步逻辑请使用函数封装，通过函数接口在内部使用
 */

import GameModuleC from "./GameModule/GameModuleC";
import ModeSelectUI from "./ModeSelectUI";
import StartTutorialUI from "./StartTutorialUI";
import NpcTalkUI_Generate from "./ui-generate/NPCTalk/NpcTalkUI_generate";


export default class NpcTalkUI extends NpcTalkUI_Generate {


	/** 
	 * 构造UI文件成功后，在合适的时机最先初始化一次 
	 */
	protected onStart() {
		//设置能否每帧触发onUpdate
		this.canUpdate = false;
		this.layer = UILayerMiddle;
		
	}
	protected onShow(...params: any[]): void {
		// 获取传递的参数
		const additionalData = params[0];
		// 处理传递的参数
		if (additionalData === "GuideNPC") {
			// 如果是 "GuideNPC"，执行相应的操作
			console.log("This NpcTalkUI is triggered by GuideNPC");
			 // 获取玩家数据
			 	// 在合适的位置创建 GameModuleC 的实例
			 const gameModuleC = ModuleService.getModule(GameModuleC);
			 
			this.talkButton.onClicked.add(()=>{ 

				// 隐藏对话UI
				UIService.hide(NpcTalkUI)

				// 对话按钮点击事件
				// 应该先判定是否是首次游戏
				// 首次游戏弹出相关UI，点击后再进入教学关
				// 否则弹出模式选择UI

				// 如果是首次游玩
				let isFristEnter=gameModuleC.getData()
			if(isFristEnter)
				{
					// 显示进入教学的对话UI
					UIService.show(StartTutorialUI)
					console.log(isFristEnter)
					gameModuleC.saveData()
				}
				// 否则弹出模式选择UI
				else{
					UIService.show(StartTutorialUI)//测试用，先调出看看有无动画
					UIService.show(ModeSelectUI)
				}
			})
		}
		// 其他逻辑
	}
	
}
